#ifndef _UIBUTTON_H_
#define _UIBUTTON_H_

#include <UIKit/UIControl.h>

typedef enum {
    UIButtonTypeCustom,
    UIButtonTypeRect,
    UIButtonTypeRoundedRect,
} UIButtonType;

class UIButtonPrivate;
class UIButton : public UIControl {
    Q_OBJECT

    public:
        UIButton (QGraphicsItem *parent = 0);
        UIButton (UIButtonType type, QGraphicsItem *parent = 0);
        ~UIButton();

        UIButtonType buttonType (void) const;
        void setButtonType (UIButtonType type);

        QFont font (void) const;
        void setFont (const QFont& font);

        QString title (void) const;
        void setTitle (const QString& title);

        QColor titleColor (void) const;
        void setTitleColor (const QColor& color);

        qreal titleShadowOffset (void) const;
        void setTitleShadowOffset (qreal offset);

        QColor titleShadowColor (void) const;
        void setTitleShadowColor (const QColor& color);

        QColor borderColor (void) const;
        void setBorderColor (const QColor& borderColor);

        QBrush backgroundColor (void) const;
        void setBackgroundColor (const QBrush& color);

    protected:
        void drawRect (QPainter *painter, const QRect& rect);

    private:
        UIButtonPrivate *d;
};

#endif /* !_UIBUTTON_H_ */

